package me.flyray.bsin.domain.constants;

/**
 * 钱包相关常量
 * 
 * @author AI Assistant
 * @date 2024-10-14
 */
public class WalletConstants {
    
    /**
     * 账户状态
     */
    public static final String ACCOUNT_STATUS_NORMAL = "1";
    public static final String ACCOUNT_STATUS_DISABLED = "0";
    
    /**
     * 删除标志
     */
    public static final String DEL_FLAG_NORMAL = "0";
    public static final String DEL_FLAG_DELETED = "1";
    
    /**
     * 币种状态
     */
    public static final String COIN_STATUS_ENABLED = "1";
    public static final String COIN_STATUS_DISABLED = "0";
    
    /**
     * MPC 钱包配置
     */
    public static final String MPC_WALLET_TYPE = "mpc";
    public static final String MPC_CHAIN_TYPE = "bsc";
    public static final Integer MPC_DEFAULT_THRESHOLD = 2;
    public static final Integer MPC_DEFAULT_PARTY_NUM = 2;
    public static final Boolean MPC_DEFAULT_SYNC = false;
    public static final Integer MPC_DEFAULT_TIMEOUT = 1000;
    
    /**
     * MQ 延时等级
     * 延时消息等级分为18个：1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
     */
    public static final int MQ_DELAY_LEVEL_3_MINUTES = 7; // 3分钟延时
    
    /**
     * 事件码
     */
    public static final String EVENT_CODE_CREATE_MPC_WALLET = "createMpcWallet";
    
    /**
     * 钱包标签
     */
    public static final String WALLET_TAG_GATHER = "GATHER";
    public static final String WALLET_TAG_DEPOSIT = "DEPOSIT";
    public static final String WALLET_TAG_WITHDRAW = "WITHDRAW";
    public static final String WALLET_TAG_SETTLEMENT = "SETTLEMENT";
    
    /**
     * 业务角色类型
     */
    public static final Integer BIZ_ROLE_TYPE_PLATFORM = 1;
    public static final String BIZ_ROLE_TYPE_NO_PLATFORM = "1";
    
    /**
     * 钱包类型
     */
    public static final Integer WALLET_TYPE_DEFAULT = 1;
    public static final Integer WALLET_TYPE_CUSTOMIZE = 2;
    
    /**
     * 钱包状态值
     */
    public static final Integer WALLET_STATUS_NORMAL_INT = 1;
    public static final Integer WALLET_STATUS_FROZEN_INT = 2;
    public static final Integer WALLET_STATUS_DISABLED_INT = 0;
    
    /**
     * 私有构造函数，防止实例化
     */
    private WalletConstants() {
        throw new AssertionError("常量类不能被实例化");
    }
}

